<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test01</title>
</head>
<body>
<script type="text/javascript">
    let set01 = new Set();

    console.dir(set01);

    let arr = [10, 20, 30, 10, 20, 30, 40];

    let set02 = new Set(arr);

    console.dir(set02);

    // set01.add(100);
    // set01.add(200);
    // set01.add(300);

    set01.add(100).add(200).add(300);
    // set01.add(100,200,300);

    console.dir(set01);

    let arr01 = Array.from(set01);

    console.dir(arr01);

    let arr02 = [...set01];

    console.dir(arr02);

    console.log(set02.size);

    set02.delete(40);

    console.log(set02);

    console.log(set02.has(30));
    console.log(set02.has(40));

    set02.clear();

    console.dir(set02);

    // for(let item of set01) {
    //     console.log(item);
    // }

    // for(let item of set01.keys()) {
    //     console.log(item);
    // }

    // for(let item of set01.values()) {
    //     console.log(item);
    // }

    // for (let [key, value] of set01.entries()) {
    //     // console.log(key);
    //     console.log(value);
    // }

    // set01.forEach(function (item) {
    //     console.log(item);
    // })

    set01.forEach(item => console.log(item));

    let set03 = new Set([10, 20, 30]);
    let set04 = new Set([20, 30, 40]);

    let set05 = new Set([...set03, ...set04]);

    console.log(set05);

    let set06 = new Set([...set03].filter(item => set04.has(item)));

    console.log(set06);

    let set07 = new Set([...set03].filter(item => !set04.has(item)));

    console.log(set07);

    let set08 = new WeakSet();
    set08.add(arr01);

    console.dir(set08);
    console.log(set08.size);

    console.log(set08.has(arr01));
    set08.delete(arr01);
    console.log(set08.has(arr01));
    console.dir(set08);

    // for(let item of set08) {
    //     console.log(item);
    // }

</script>
</body>
</html>